Das CAB-Protokoll ================= Das CAB-Protokoll besteht aus einer Reihe von AES-Messages mit deren Hilfe beliebige GEM-Programme bestimmte Aufgaben an CAB bertragen k”nnen, bzw. bestimmte Aktionen mit CAB koordinieren k”nnen. Der Inhalt der Environment-Variablen BROWSER= (sofern definiert) enth„lt den Zugriffspfad von CAB. Sollte sich CAB nicht im Speicher befinden kann ein Programm ber diese Variable CAB selbst nachstarten. Eine m”gliche Anwendung: Falls man im Internet weitere aktuelle Informationen oder Updates zu eigenen Programmen anbietet, k”nnte man mit dem CAB-Protokoll ohne grožen Aufwand den Zugriff auf diese Informationen aus diesen Programmen heraus erm”glichen. CAB erledigt dann den Download der Daten und die Darstellung. Die Beschreibung der Messages ============================= CAB_HELLO ($CAB8) (Nachricht von CAB) ------------------ CAB verschickt nach seinem Start an alle laufenden Programme diese Nachricht msg[0] = $CAB8 msg[1] = Id von CAB msg[2] = 0 msg[3] = Version des CAB-Protokolls ($0100 entspricht V1.00) msg[4] = Bitvektor mit den von CAB (CAB.OVL) untersttzten Internet- Protokollen Bit 0: HTTP Bit 1: FTP Bit 2: GOPHER Bit 3: WAIS Bit 4: MAILTO Bit 5: NNTP Bit 6: TELNET Bit 7-15: 0 (reserviert) msg[5] = Bitvektor mit den von CAB untersttzten Nachrichten des CAB-Protokolls. Bit 0: CAB_VIEW Bit 1: CAB_MAIL, CAB_MAILSENT Bit 2: CAB_REQUESTSTATUS, CAB_RELEASESTATUS, CAB_STATUS, CAB_EXIT Bit 3-15: 0 (reserviert) msg[6] = 0 msg[7] = 0 CAB_SUPPORT ($CABB) (Nachricht an CAB) -------------------- Wird diese Nachricht an CAB geschickt, sendet CAB die Nachricht CAB_HELLO zurck. Bleibt CAB_HELLO aus, wird noch eine alte Version von CAB benutzt welche das CAB-Protokoll noch nicht untersttzt. Alle Programme, die an den Informationen interessiert sind, die CAB_HELLO liefert, sollten nach dem Start CAB_SUPPORT an CAB senden. Wird CAB erst sp„ter gestartet, wird CAB_HELLO automatisch an das Programm geschickt. msg[0] = $CABB msg[1] = Id des PRGs msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_VIEW ($CAB3) (Nachricht an CAB) ---------------- Žhnlich wie VA_START aber statt eines Dateinamens wird eine URL bergeben. CAB zeigt diese Datei dann an. msg[0] = $CAB3 msg[1] = Id des PRGs msg[2] = 0 msg[3] = \ Zeiger auf die URL msg[4] = / msg[5] = Wenn hier 1 eingetragen wurde, stellt CAB die URL in einem neuen Fenster dar, wenn 0 eingetragen wurde wird das oberste CAB- Fenster benutzt. msg[6] = 0 msg[7] = 0 CAB_REQUESTSTATUS ($CAB5) (Nachricht an CAB) ------------------------- Kann an CAB geschickt werden, um zu erfahren ob CAB zur Zeit online oder offline ist. CAB schickt daraufhin bei jeder Žnderung des On-/Offline- Statuses die Message CAB_STATUS. msg[0] = $CAB5 msg[1] = Id des PRGs msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_RELEASESTATUS ($CAB7) (Nachricht an CAB) ------------------------- Sollte an CAB geschickt werden, wenn ein Programm nicht mehr an den on/offline- Informationen interessiert ist, die mit CAB_REQUESTSTATUS angefordert wurden (z.B. weil es sich beendet). msg[0] = $CAB7 msg[1] = Id des PRGs msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_STATUS ($CAB6) (Nachricht von CAB) ------------------ Wird von CAB an alle Programme verschickt, die sich mit CAB_REQUESTSTATUS angemeldet haben. msg[0] = $CAB6 msg[1] = Id von CAB msg[2] = 0 msg[3] = 1 falls CAB online; 0 falls CAB offline. msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_EXIT ($CAB1) (Nachricht von CAB) ---------------- Wird von CAB an alle Programme geschickt, die sich mit CAB_REQUESTSTATUS angemeldet haben, sobald sich CAB beendet. Vorher wird auch noch ein CAB_STATUS gesendet, in dem der offline-Zustand gemeldet wird. msg[0] = $CAB1 msg[1] = Id von CAB msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_MAIL ($CAB9) (Nachricht an CAB) ---------------- Kann an CAB geschickt werden, um Mails zu verschicken. msg[0] = $CAB9 msg[1] = Id des PRGs msg[2] = 0 msg[3] = \ Zeiger auf die URL. Ein 'Betreff' (Subject) kann, durch ein msg[4] = / Fragezeichen getrennt, direkt an die URL geh„ngt werden. msg[5] = \ Zeiger auf eine Datei, die den Mailinhalt enth„lt oder msg[6] = / null (dann ”ffnet CAB einen Editor, in dem die Mail eingegeben wird). msg[7] = Bitvektor mit weiteren Optionen. Bit 0: 0 falls die Maildatei sofort verschickt werden soll, oder 1 falls die Maildatei vom Benutzer noch in CAB bearbeitet/ge„ndert werden soll. Bit 1: bei 1 wird die Maildatei gel”scht, nachdem sie verschickt wurde, bei 0 bleibt sie erhalten. Bit 2-15: 0 (reserviert) CAB_MAILSENT ($CABA) (Nachricht von CAB) -------------------- Wird von CAB an das Programm geschickt, welches CAB_MAIL gesendet hat und enth„lt Informationen, ob das Verschicken der Mail geklappt hat oder nicht. msg[0] = $CABA msg[1] = Id von CAB msg[2] = 0 msg[3] = 1 falls die Mail ohne Fehler verschickt wurde; 0 bei Fehler (in diesem Fall ist in msg[4] die Fehlerursache zu erfahren). msg[4] = Enth„lt eine Fehlernummer, falls msg[3]=0 0: Keine URL angegeben. 1: Offline, Netzverbindung gest”rt, Server nicht erreichbar. 2: Benutzer hat Aktion abgebrochen (Falls die Mail in CAB bearbeitet werden sollte, hat der Benutzer die M”glichkeit die Aktion abzubrechen) 3: GEMDOS-Fehler beim Zugriff auf die Maildatei. 4: Editor zum Bearbeiten konnte nicht aufgerufen werden. msg[5] = 0 msg[6] = 0 msg[7] = 0 Spezielle Messages fr 'Cache-Tools' ==================================== CAB_CCHANGED ($CAB0) (Nachricht an/von CAB) -------------------- Der Cache (bzw. CACHE.CAB) wurde ver„ndert und soll neu eingelesen werden. msg[0] = $CAB0 msg[1] = Id von CAB/des PRGs msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_EXIT ($CAB1) (Nachricht an/von CAB) ---------------- CAB oder das Cache-Tool beendet sich (als Info fr das jeweils andere PRG) msg[0] = $CAB1 msg[1] = Id von CAB/des PRGs msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_PATH ($CAB2) (Nachricht von CAB) ---------------- Die lokalen HTML-Verzeichnisse und/oder das Cache-Verzeichnis wurde ge„ndert. N„here Infos sind in der Cache-Tools-Dokumentation zu erfahren. msg[0] = $CAB2 msg[1] = Id von CAB msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0 CAB_TERM ($CAB4) (Nachricht von CAB) ---------------- Das Cache-Tool soll sich beenden. msg[0] = $CAB4 msg[1] = Id von CAB msg[2] = 0 msg[3] = 0 msg[4] = 0 msg[5] = 0 msg[6] = 0 msg[7] = 0